As odd as this may sound, have you considered wrapping her with warm blankets, perhaps one with weights (such as bean bags) added to them? Remember that members of the snivy line are grass-type reptilian pokémon, so they need warmth—such as, for example, from the human body—in order to sleep comfortably at night. This goes doubly for your serperior, who you may have also inadvertently trained to use you as that source of heat. Covering her with a blanket and adding weights will simulate the feeling of being close to you while allowing her to remain warm, even when the temperature drops at night.
Best of luck, anonymous!