[step:Construct a smooth local frame for $P(E)$]
Define the subset $F\subset E$ fibrewise by
\begin{align*}
F_p:=\operatorname{Range}(P_p)
\end{align*}
for each $p\in M$. We show that $F$ is a smooth subbundle of $E$.
Fix $p_0\in M$, and shrink the local trivialising neighbourhood $U\subset M$ from the previous step so that the rank
\begin{align*}
r:=\dim F_q
\end{align*}
is constant for all $q\in U$. If $r=0$, then $F|_U$ is the zero subbundle, so it is smooth over $U$.
Assume $r>0$. With respect to the smooth local frame $(e_1,\dots,e_n)$ of $E|_U$, define smooth local sections
\begin{align*}
s_j:U\to E|_U
\end{align*}
by
\begin{align*}
s_j(q):=P_q e_j(q)
\end{align*}
for $q\in U$ and $j\in\{1,\dots,n\}$. For every $q\in U$, the vectors $s_1(q),\dots,s_n(q)$ span $F_q$ by definition of $F_q=\operatorname{Range}(P_q)$.
Choose indices $j_1,\dots,j_r\in\{1,\dots,n\}$ such that
\begin{align*}
s_{j_1}(p_0),\dots,s_{j_r}(p_0)
\end{align*}
form a basis of $F_{p_0}$. Since [linear independence](/page/Linear%20Independence) is an open condition, after shrinking $U$ around $p_0$ if necessary, the vectors
\begin{align*}
s_{j_1}(q),\dots,s_{j_r}(q)
\end{align*}
remain linearly independent for every $q\in U$. Because $\dim F_q=r$ and these $r$ vectors lie in $F_q$, they form a basis of $F_q$ for every $q\in U$. Thus the sections $s_{j_1},\dots,s_{j_r}$ form a smooth local frame for $F|_U$.
Since every point of $M$ has such a neighbourhood $U$, the fibrewise image $F=P(E)$ is a smooth subbundle of $E$.
[/step]