No idea if this applies to a lot of laptops, but on my HP with an i5-8350U every Linux distro I've tried seems to come configured using s2idle instead of deep sleep, and battery will drain very quickly even in 'sleep' mode.
If running cat /sys/power/mem_sleep returns "[s2idle] deep" then you can add mem_sleep_default=deep to your kernel args and it will actually go to sleep properly.
On Fedora this was sudo grubby --update-kernel=ALL --args="mem_sleep_default=deep" but it varies by distro.
Why it seems like every distro I've used has this set incorrectly I do not know, it's baffling.