I'll deal with the printer first.
If your printer is working properly on your desktop machine, you should be able to share it for use with your laptop.
Three things to check are:
1. File and Printer sharing is enabled
2. The firewall(s) are configured to allow that service
3. Your laptop has the printer driver installed.
Now the hard drive.
If all you have is a USB hard drive, you can't simply plug it into a router to work. It needs the operating system on one of the computers to enable it to function. Therefore, it will have to be attached to one of the computers. If however it is a self contained file server, that is a different matter. I doubt it is though, because I've never seen a USB version of a file server.