I am not sure about the need of supervisor container, but for the uwsgi and Nginx rule of thumb for the contianer
"Single process per container"
dockerfile_best-practices
So better to have 3 container
If you want to keep supervisor just for sake managing Nginx process then better to remove this as "update docker image and launch new container is better then restarting process"
Both Nginx and uwsgi will be running as root process of the container and when there is an update, update the image and launch new container is common practice and the health check should be manageable.
Plus you can run one Nginx along with two application container as scaling and flexibility are more when you have one process per container .