How can I add multiple NAT gateways to main route tables for HA
you should not use the main route table for this purpose. As you should know, a NAT Gateway is created in a specific Availability Zone and implemented with redundancy in that zone.
If you have resources in multiple Availability Zones and they share one NAT gateway, in the event that the NAT gateway’s Availability Zone is down, resources in the other Availability Zones lose internet access. To create an Availability Zone-independent architecture, create a NAT gateway in each Availability Zone and configure your routing to ensure that resources use the NAT gateway in the same Availability Zone.
So, I would create a Route Table for each availability zone used in your private subnets and then configure the belonging NAT Gateway to it.