The reason why car struggling to start when cold
Partially frozen battery electrolyte.
When temperatures are very low, the electrolyte within the battery may freeze or at least freeze partially. This causes a battery to lose much of its power and in turn not crank the engine quick enough to start it immediately.
What to do?
You may want to replace your battery with a battery that has a very good "Cold Cranking Rating". Such batteries are very effective in cold weather. Visit your local auto parts store and ask the salesman to explain the differences between the various batteries the store stocks.