How to find non-cyclic subgroups of a group?
In general, finding the subgroups (of a biggish group) won't be easy.
In the case of $D_4$, the only non-cyclic groups besides $D_4$ itself can only be of order $4$. So you are looking at subgroups of $G$ that consist of the identity, and three involutions (elements of order $2$) $a, b, c = ab$.
Now try out the various possibilities, avoiding repetitions.
One thing you can try is find the groups of each order. A group of order $2$ must be isomorphic to $\mathbb{Z}_2$, which contains identity and another element of order $2$. How many elements of order $2$ are there?
For groups of order $4$, they are isomorphic to either $\mathbb{Z}_4$ or $\mathbb{Z}_2\times\mathbb{Z}_2$. In $\mathbb{Z}_4$, it contains an element of order $4$, so what is it? The other case is similar.
You can also find them using Group Explorer.
In the $n=15=3\cdot 5$ case, recall that every group of order $p$ prime is cyclic. This leaves you with the subgroups of order $15$. How many are there?
Of course, this is not as easy in general. For general finite groups, the classification is a piece of work. Finite Abelian groups are easier, as they fall in the classification of finitely-generated Abelian groups.
Now, $D_4$ is not that bad. The only nontrivial thing is to find all the subgroups of order $4$. Cyclic ones correspond to order $4$ elements in $D_4$. Noncyclic ones are of the form $\{\pm 1,\pm z\}$ where $z$ is an order $2$ element in $D_4$. Since $D_4$ has eight elements, it is fairly easy to determine all these order $2$ and $4$ elements.