Well, I believe the easiest way to do what you're asking is to put the store view in the URL. Although there is another method that I know of.
You could follow this method to include the store view in the URL itself, and then when you link you can post the different stores in various links. When you link you could do
2) You could have a "store switcher" link.
I am unsure based on your question why you are switching stores. Do they have different languages or products? either the case the result is the same. Let's assume you have different products because you want a store to represent a different brand but you have the same products and categories.
You could have links on main store or store view 1 that links to store-view-2 and store-view-3.
<a href="?___store=store-view-2&___from_store=store-view-1" style="color: #222222;">Store 2</a>
<a href="?___store=store-view-3&___from_store=store-view-1" style="color: #222222;">Store 3</a>
Now if you put that into say your header or footer, it will keep any page you're on and if you have created the same pages in the other store views it simply switches stores and keeps the page. This also works great for languages. Say you speak English and Spanish, you can keep the same page, in the CMS it has the same identifier - one is enabled for each store view, and naturally the english store view has english text and photos and the spanish one has spanish text and photos. Based on this it will show the user which one they want simply based on stores.
Long response but I had to make some assumptions about what you're doing. There are also far better ways to do what I am mentioning to you in the actual code and have it more efficient such as creating a variable and calling it then that calls the store view based on your URL and a couple of other optimizations.
Both of these methods will get you going in the right direction.
For any reviewers / Googlers - please post in comments which one works best for you for future readers.