Well first you should ask: "Why do I need three scripts instead of having all in one?"
If each script must be in a different prim is reasonable.
If they are on the same the only reason why you are *forced* have different scripts is because of memory limit (16k per script so far)
In my case there are other factors when I consider having different scripts in one prim one is: script complexity and script task.
For example: I make a very big script that work as main menu and I need to add a feature that will make the script even bigger and the specific task is not beeing port of a Main Menu then I decide to make a new script. (It seems that this is what you want)
But if you have small scripts you can join all in one.
----
Now replying to your question if all the scripts are in same prim/object you can use linked messages. Linked messages are messages that are only sent internally between prims, and you can send a message to the same prim itself. This is the function's header:
llMessageLinked(integer sender, integer parameter, string message, key id)
More about this function:
http://www.lslwiki.net/lslwiki/wakka.php?wakka=llMessageLinkedAnd the event that listens for this messages:
http://www.lslwiki.net/lslwiki/wakka.php?wakka=link_message-----
I would like to hear other opinions about this. Some scripters use the script until they ran our of memory. Others when working in big projects preffer to divide scripts according to tasks: One for main menu, another for process a, and another for process b.
----