If $f$ is a homomorphism, does it map $p$-groups to $p$-groups? 
If $f$ is a homomorphism s.t. $f:G \rightarrow H$, where $G$ and $H$ are finite groups, does it send $p$-groups in $G$ to $p$-groups in $H$? 

I know isomorphisms send $p$-groups to $p$-groups, because they preserve order, and I know homomophisms preserve the order of elements. I think that means they also preserve subgroups, i.e. a subgroup $A \in G$ gets mapped to a subgroup $B$ of the same order in $H$ by $f$.
Is that correct? 
Also, I think if $A$ is a normal subgroup, this doesn't imply $B$ is normal, unless $f$ is an isomorphism. This is because there could be an injective map from $G$ to $H$ where the order of $H$ is greater than the order of $G$.
 A: Let $A\in G$ be a $p$-group. Restrict $f$ to $A$, kernel of this new homomorphism obtained is $A\cap \ker f$ and image is $f(A)$. Apply first isomorphism theorem, 
$$\Longrightarrow |A|=|A\cap \ker f|\times |f(A)|,$$
which implies that $f(A)$ is a $p$-group, if $A$ is a $p$-group.
A: You don't specify if you are working with finite or infinite groups. The post has been edited to specify the groups are finite.
A $p$-group is a group in which every element has order a power of $p$. In the finite case, this is equivalent to the order of the group being a power of $p$, and so the argument given by Martund yields the desired result, regardless of whether $f$ is surjective or not.
More generally, if $f\colon G\to H$ is any group morphism and $g\in G$, then $|f(g)|$ divides $|g|$ for all $g\in G$, where $|x|$ denotes the order of $x$, and we take $|x|=0$ if $x$ is of infinite order (that is, $|x|$ is the nonnegative generator of the kernel of the map $\mathbb{Z}\to \langle x\rangle$ given by $n\longmapsto x^n$).
The divisibility result follows because if $g^k=e$, then $f(g)^k = f(g^k) = f(e) = e$; so the set of integers for which $f(g)^k=e$ is contained in the set of integers for which $g^k=e$. Thus, of $A$ is a subgroup of $G$ in which every element has order a power of $p$, $p$ a prime, then the same is true for $f(A)$. Thus, the image of a $p$-subgroup under a homomorphism is always a $p$-subgroup.
If $f$ is surjective (whether or not it is an isomorphism), then $f$ maps normal subgroups to normal subgroups. You can deduce this from the lattice homomorphism theorem, or directly: if $A\triangleleft G$, and $B=f(A)\leq H$, let $h\in H$ and $b\in B$. We want to show that $hbh^{-1}\in B$. Since $f$ is surjective, there exists $x\in G$ such that $f(x)=h$. And since $b\in f(A)$, there exists $a\in A$ with $f(a)=b$. Thus, $hbh^{-1}=f(x)f(a)f(x)^{-1} = f(xax^{-1})$. But since $A$ is normal in $G$, $xax^{-1}\in A$, so $f(xax^{-1})\in f(A)$. Thus, $hbh^{-1}\in f(A)$, as desired, hence $f(A)\triangleleft H$.
If $f$ is not surjective, though, then you cannot deduce that normal subgroups map to normal subgroups. For example, take $C_2$, the cyclic group of order $2$, and map to $S_3$ by mapping the generator to $(1,2)$. Then $C_2$ is normal in itself, but the image is not normal in $S_3$.
