If you have a two year old, you really need to think about how to store detergents, medicines and all sorts of potentially hazardous stuff. I would put drain cleaner in that category. Look at every item even those with child proof containers.
Personally I don't see any good substitute for drain cleaner. After a while every drain seems to develop a build up of oils, hair and other particles. Drain cleaner will take care of the build up. Other methods typically just work for the short term. BTW, drain cleaner is not especially hard on the environment. It is basically just lye and is readily neutralized.