It's normal for a vehicles engine to be hard to start in the cold weather.
When the weather turns cold the engine oil thickens which makes the engine oil harder to go throughout your engine to lubricate the engine parts.
This makes cranking the engine over a little more difficult and can put stress on your starter and battery.
Another thing is your engine coolant temp sensor is telling your engines computer that the engine is too cold and may not be sending it the correct amount of fuel at the right time to allow it to start.
The cold weather can also take it's toll on vehicle batteries and can actually cause the battery to discharge or cause the starter to not get enough amperage to start.
If possible install an engine coolant heater on your vehicles engine and leave it plugged in overnight in really cold temperatures and then it will allow your engine to be warmed up and then allow your engine to start better in the cold weather.