This seems to be a constant annoyance with Linux laptops. The manufacturers pretty much DGAF when it comes to optimizing their stuff for Linuxes.

Things that I found to work quite well:

1
If your laptop is an older one disassemble it and clean it out. Usually there is a crapload of dust accumulated in the air vents which will cause the coolant to try and spin quicker using more electricity and this causes the processor to be constantly waken up for whatever reason.

2
Install cpufreq-utils if you don't have it already installed. Set it to ondemand, that's what windows uses by default. This lowers the frequency of your cpu when it's not needed and increases it when it is needed.