Finding subgroups of $S_n$ isomorphic to $G$ is the same thing as finding injective homomorphisms from $G$ to $S_n$.
Finding homomorphisms from $G$ to $S_n$ is the same as choosing conjugacy classes of subgroups $H_i$ of $G$ so that $n = \sum [G:H_i]$. The kernel of the homomorphisms is the intersection of the conjugates of all of the $H_i$.
If $G=H\times K$, then take $H_1 = H \times 1$ and $H_2 = 1 \times K$, and we get $H_1 \cap H_2 = 1 \times 1$, so the homomorphism defined by $\{H_1, H_2\}$ is injective, and $G$ is a subgroup of $S_n$ for $n = [G:H_1] + [G:H_2] = |K| + |H|$.
Repeating this with 3 groups shows that $C_2 \times C_2 \times C_2$ is isomorphic to a subgroup $S_6$ since $6=2+2+2$. By considering a Sylow 2-subgroup of $S_5$, one can see that $6$ is in fact the smallest possible $n$. An explicit subgroup is $\langle (1,2) \rangle \times \langle (3,4) \rangle \times \langle (5,6) \rangle$.
Similarly $S_3 \times S_3$ is isomorphic to a subgroup of $S_6$ since $6=3+3$. It is not isomorphic to a subgroup of any smaller $S_n$ since $S_5$'s order is not divisible by 36. An explicit subgroup is $\langle (1,2), (1,2,3) \rangle \times \langle (4,5),(4,5,6) \rangle$.
$Z_9$ is isomorphic to a subgroup of $S_9$, and by checking a Sylow 3-subgroup of $S_8$, one can see no smaller $n$ will work. An explicit subgroup is $\langle (1,2,3,4,5,6,7,8,9) \rangle$.
See https://mathoverflow.net/questions/48928/smallest-n-for-which-g-embeds-in-s-n for some higher level ideas.