[proofplan]
We verify the functor axioms directly. First we check that the composite assignment sends each morphism of $\mathcal C$ to a morphism of $\mathcal E$ with the correct source and target. Then we prove that identities and composition are preserved by applying the corresponding axioms first for $F$ and then for $G$. Finally, we verify the same two axioms for the identity assignment on an arbitrary category.
[/proofplan]
[step:Check that the composite sends morphisms to morphisms with the correct source and target]
Let $H: \mathcal C \to \mathcal E$ denote the assignment $G \circ F$. Let $X$ and $Y$ be objects of $\mathcal C$, and let $f: X \to Y$ be a morphism in $\mathcal C$.
Since $F: \mathcal C \to \mathcal D$ is a covariant functor, $F(f): F(X) \to F(Y)$ is a morphism in $\mathcal D$. Since $G: \mathcal D \to \mathcal E$ is a covariant functor, applying $G$ to this morphism gives
\begin{align*}
G(F(f)): G(F(X)) \to G(F(Y))
\end{align*}
as a morphism in $\mathcal E$. By the definition of $H$, this says
\begin{align*}
H(f): H(X) \to H(Y).
\end{align*}
Thus $H$ is well-defined on morphisms with the required source and target.
[/step]
[step:Prove that the composite preserves identity morphisms]
Let $X$ be an object of $\mathcal C$. Since $F$ is a covariant functor, it preserves identity morphisms, so
\begin{align*}
F(\operatorname{id}_X)=\operatorname{id}_{F(X)}.
\end{align*}
Since $G$ is a covariant functor, it also preserves identity morphisms, so
\begin{align*}
G(\operatorname{id}_{F(X)})=\operatorname{id}_{G(F(X))}.
\end{align*}
Using the definition of $H=G \circ F$, we obtain
\begin{align*}
H(\operatorname{id}_X)
&=G(F(\operatorname{id}_X)) \\
&=G(\operatorname{id}_{F(X)}) \\
&=\operatorname{id}_{G(F(X))} \\
&=\operatorname{id}_{H(X)}.
\end{align*}
Therefore $H$ preserves identity morphisms.
[/step]
[step:Prove that the composite preserves composition of morphisms]
Let $X$, $Y$, and $Z$ be objects of $\mathcal C$. Let $f: X \to Y$ and $g: Y \to Z$ be morphisms in $\mathcal C$, so that $g \circ f: X \to Z$ is defined in $\mathcal C$.
Since $F$ is a covariant functor, it preserves composition:
\begin{align*}
F(g \circ f)=F(g)\circ F(f).
\end{align*}
The morphisms $F(f): F(X) \to F(Y)$ and $F(g): F(Y) \to F(Z)$ are composable in $\mathcal D$. Since $G$ is a covariant functor, it preserves their composition:
\begin{align*}
G(F(g)\circ F(f))=G(F(g))\circ G(F(f)).
\end{align*}
Using the definition of $H=G \circ F$, we get
\begin{align*}
H(g \circ f)
&=G(F(g \circ f)) \\
&=G(F(g)\circ F(f)) \\
&=G(F(g))\circ G(F(f)) \\
&=H(g)\circ H(f).
\end{align*}
Thus $H$ preserves composition.
[/step]
[step:Conclude that the composite assignment is a covariant functor]
The assignment $H=G \circ F$ is defined on objects and morphisms, sends every morphism $f: X \to Y$ in $\mathcal C$ to a morphism $H(f): H(X) \to H(Y)$ in $\mathcal E$, preserves identity morphisms, and preserves composition of composable morphisms. These are precisely the defining properties of a covariant functor. Hence $G \circ F: \mathcal C \to \mathcal E$ is a covariant functor.
[/step]
[step:Verify that the identity assignment is a covariant functor]
Let $\mathcal C$ be a category. Define $I: \mathcal C \to \mathcal C$ by $I(X)=X$ for every object $X$ of $\mathcal C$ and $I(f)=f$ for every morphism $f$ of $\mathcal C$.
If $f: X \to Y$ is a morphism in $\mathcal C$, then
\begin{align*}
I(f)=f: X \to Y,
\end{align*}
so $I(f): I(X) \to I(Y)$ has the correct source and target.
For every object $X$ of $\mathcal C$,
\begin{align*}
I(\operatorname{id}_X)=\operatorname{id}_X=\operatorname{id}_{I(X)}.
\end{align*}
For every pair of composable morphisms $f: X \to Y$ and $g: Y \to Z$ in $\mathcal C$,
\begin{align*}
I(g \circ f)=g \circ f=I(g)\circ I(f).
\end{align*}
Therefore $I$ preserves identity morphisms and composition. Hence $I=\operatorname{Id}_{\mathcal C}$ is a covariant functor.
[/step]