Many modern laptops no longer support S3 sleep at all. It is likely to be an issue with the bios rather than a linux project. On my laptop, with Ryzen 7 5825U, I had to give up on S3 and use s2idle. Also had to pass "pcie_aspm=off" as a kernel parameter because it would take ages to wake the ssd without it. Overall works ok. Not as good as S3 but better than nothing.
I haven't really noticed much of a difference. I figured it was probably worth actually being able to wake the laptop from sleep rather than having to restart it every time.
So to check what suspend states your laptop supports run cat /sys/power/mem_sleep. It should print something like s2idle shallow [deep] with the option that is enabled having [] around it. To change the enabled option run echo "s2idle" > /sys/power/mem_sleep. https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate has more info.