How can I join two tables while filtering the results with a" WHERE IN" clause?
not familiar with mySQL syntax, but I believe there are multiple errors with your query. you've got an extra ")" or you tried to use "order by" in a subquery, the join clause looks weird, it's returning everything and there is no group by with sum(votes), etc.

For problems like these, it is best to start with a working query and expand it one step at a time. For example, first join 2 tables, then change the * to the list of fields you want, then restrict it with the third, then sum up votes, then sort them, ...

try:

SELECT b.id,sum(bm.totalvotes)
FROM 
bills b 
inner join favoritebills fb on b.id = fb.billid
inner join billvotesmeta bm on b.id = bm.billid
WHERE 
userid='$_SESSION[userid]'
group by b.id
order by sum(bm.totalvotes) desc;


You may have to rename some fields. the names aren't clear to me. 
if you want to add fields to your resultset, be sure to add them to the group by clause at the bottom too.