The title of this topic asks one thing, and the content of your post asks another thing.
I will answer your title.
Gmail has a tool called "Mail Fetcher". Gmail's Mail Fetcher can download messages from up to five other email accounts, centralizing all your email in Gmail.
Setting up Mail Fetcher is easy and free, but the email accounts you'd like to fetch from must support POP access and, in the case of Gmail addresses, have POP access enabled. Some free email services don't offer POP access to their users, so please contact the customer service department of your other webmail provider to determine if POP access is available in your non-Google email account.
Once you've set up Mail Fetcher, Google will check your other accounts on a regular basis, and new mail will appear automatically in Gmail. Gmail checks individual accounts for new messages at different rates, depending on previous mail fetch attempts. At this time you can't customize the frequency of automatic mail fetches.
Here is information on setting up Mail Fetcher in Gmail:
You will need to know the POP server name for both Hotmail and Yahoo when you add the addresses to Gmail. Don't worry, I have provided this information for you below:
The Incoming mail server (POP3) is: pop3.live.com.
The outgoing mail server (SMTP) is: smtp.live.com.
The incoming port server number is: 995.
The outgoing port server number is: 25.
Yahoo Incoming Mail Server (POP3) - pop.mail.yahoo.com (port 110)
Yahoo Outgoing Mail Server (SMTP) - smtp.mail.yahoo.com (port 25)