The chemical reaction in li-ion batteries is temperature dependent, so it’s not a case of cheap vs. expensive, it’s a fundamental limitation of the technology.
So as above, all you can do is try and keep them warm by wrapping them in something and keeping them somewhere warm when you’re not riding.
It’s worth pointing out that you’re not actually draining the battery when you get it cold. You should find that when it warms up again it’s still got charge. Sometimes when I use my camera outdoors in cold weather, I need two batteries. Once one appears to be dead, I swap it for one keeping warm in my pocket. When that cools down and “dies” I swap it for the previously “dead” one which has now warmed up and come back to life.