Bueno, la única forma en que podrías haber construido esto es así:
content = {};
content["Parent"] = {}
content["Parent"]["key2"] = 1
content["Parent"]["key 3"] = 1
db.coll_name.insert(content)
Pero parece que te estás perdiendo que no hay nada de malo en hacer esto:
db.coll_name.find({ "Parent.key 3": 1} )
O en proyección
db.coll_name.find({}, { "Parent.key 3": 1 })
Es "notación de puntos" y no notación de objetos, y siempre que cite los nombres clave (lo cual es obligatorio para la notación de puntos), entonces todo está bien y puede tener un espacio allí.