By changing the configuration files of each server, you have have them listening on different ports. This way they will not conflict with each other returning a Port in Use error. However, I do agree with Journeyman Geek as running multiple VMs is ideal in my opinion. You could use something like VirtualBox's Export/Import Appliance feature that will allow you to quickly get the other two VMs copied and running. Much easier in separating the three servers in troubleshooting. Only reason why I can see you wanting to have different servers for different ports is if you were making an administrative backend to an application, but then why not just use Virtual Hosts.
APACHE
Usually in your /etc/apache2/ports.conf there is a line that tells apache which port to listen on. You will want to change this to your applicable port.
Listen 80
NGINX
When you setup this server, you'll have a configuration similar to this one where you're listening on port 81.
server {
listen 81;
server_name localhost;
access_log logs/localhost.access.log main;
location / {
root html;
index index.html index.htm;
}
}
LIGHTTPD
server.port = 82