You'll need to install the ACL and Content Access modules as well as uc_node_access.
Every site is different, but the general workflow goes something like this:
Create a new content type, and use the content access features to make nodes of this content type inaccessible to users by default Create your 'paid content' node using the new content type. These nodes will not be viewable by site users by default. Create a node of type 'product' (an ubercart node type). Users who purchase this product will gain access to the 'paid content' node. Add a feature to the product node of type 'node_access' (Edit the product node, click the features tab, and add a node_access feature). Here's where you specify the node that purchasers of this product will gain access to. Repeat steps 2 thru 4 for each node that you want to offer for purchase. If you've done everything correctly, then users who purchase the product node will gain access to the corresponding 'paid-access' node.
I've used the D6 version of uc_node_access on a few sites, and it works flawlessly for me. Can't speak for the D7 version of uc_node_access, but I'm guessing it works equally well. Takes a bit of setup, but it does work.
For track anonymous viewing the only thing I know is use the browser's cookies, but that method will only work in the actual session if the user do not registers and clear his browser's caches then he can see 3 nodes again, I think you should look for alwasy force the user to register, or show only a teaser of the nodes for anonymous and force them to register for see the full node, then you can only let registered users see 3 nodes, then they have to pay, that way is possible and better. Its just a suggestion