Hiding away in your VPC > Subnet details is a little flag editable under the Modify auto-assign IP settings action:

Auto-assign IPv4 [ ] Enable auto-assign public IPv4 address

By default this is probably disabled. However, this is just the subnet default.

You can manually change this setting on deployment of a new instance:

ec2.create_instances(
  ...
  NetworkInterfaces=[
      ...
      'AssociatePublicIpAddress': True,
  ]
)