Subfunctors of product-preserving functors Let $\mathscr{C}$ be a category with finite products. Let $F:\mathscr{C}\longrightarrow \operatorname{Set}$ be a finite product-preserving functor. Let $G:\mathscr{C}\longrightarrow \operatorname{Set}$ be a subfunctor of $F$. Is it true that $G$ is finite product-preserving? If not, can you give me a counterexample?
 A: Here's the simplest possible counterexample:
Let $\mathcal{C}$ be the category with three objects, $A$, $B$, and $C$, and only two non-identity arrows $C\to A$ and $C\to B$. This is a category with finite products (it's a poset with all finite meets). In particular, $C$ is the product of $A$ and $B$.
Now define $F\colon \mathcal{C}\to \mathsf{Set}$ by $F(A) = F(B) = F(C) = 1$, where $1 = \{*\}$ is the terminal set. $F$ is product-preserving; if you like, $F$ is naturally isomorphic to $\text{Hom}_{\mathcal{C}}(C,-)$. Let $G$ be the subfunctor such that $G(A) = G(B) = 1$, but $G(C) = \emptyset$. Then $G$ is not product-preserving.
Edit: As Zhen Lin points out, a terminal object is an empty product, so categories with finite products should have terminal objects, and product-preserving functors should preserve them. So to make my counterexample a real counterexample, you should add a fourth object $D$ and a unique arrow from every other object to $D$. Then $F$ and $G$ can be extended to also map $D$ to $1$. 
Of course, this reminds me that there's an even simpler counterexample: Let $\mathbb{1}$ be the category with a single object $*$ and a single arrow $\text{id}_*$. Define $F,G\colon \mathbb{1}\to \mathsf{Set}$ by $F(*) = 1$ and $G(*) = \emptyset$. Then $F$ is product-preserving but $G$ is not (it does not preserve the terminal object).
