Check that your yaml file in the /etc/netplan/ directory has the highest number preceding the rest of the filename. The Highest number is processed last, and overrides any previous config. Eg. 50-cloud-config.yaml will be processed first, followed by 60-my-new-config.yaml. If 60-my-new-config.yaml reconfigures a device that was listed in the earlier file, then the later config will be applied.
Note too, that if you configured a device in an earlier file, and don't reconfigure it in the later file, then the original device will still be present. This could cause a conflict with your attempt to assign a static IP (eg. device enp0s3 is referenced in a bridge or bond previously, and then the new config cannot be applied).
To check for errors, run the generate command with "--debug" (two dashes not one, as in the comments):
sudo netplan --debug generate
If there is a problem with the script, it will be listed for you to correct. Otherwise, running apply will not make anything change (although your script looks fine - the default renderer is "networkd" if nothing else is specified).
Then apply using the try command, to roll back if there is an error:
sudo netplan --debug try
Check results with the networkctl and/or ip command to see what you got.
sudo networkctl status enp0s3
sudo ip address show enp0s3