|As has been said, you need to create a trunk port between the switch and router.|
I'm not familiar with the model switch you're using but have worked extensively with 2900 XL, 2950, and the 3500. It's the same on all of them and I will go through the commands with you below.
Assuming the VLAN's are already configured and port 1 on the switch is connected to the router and the port on the router is already in trunk mode, and you are logged into the switch and already in privileged mode, you would:
# <- I will use this for my comments so you know it's not a
# command. I will use the short form of the commands
# and show the full command beside it in brackets
# go into global configuration mode
conf t (configure terminal)
# select the interface you wish to make a trunk
int fa0/1 (interface fa0/1)
# make the interface a trunk port
switchport mode trunk
# the above command makes port fa0/1 a trunk
By default with a Cisco switch, all VLAN's will be attached to a trunk port so in your present case, it will look as follows:
Port 1 = trunk
Base VLAN = 1
Allowed VLAN's = 1, 2, 3
Port 2 - 4
VLAN = 2
Port 5 - 8
VLAN = 3
No need to mention port 1 for VLAN's 2 and 3 because it's a trunk port and once you make it a trunk, by default all VLAN's are passed through it.
For VLAN's 2 and 3 to connect to the internet, you need routes in your router from their subnets to the VLAN 1 subnet and the gateway to the internet.