The problem is you are mixing bit and std_logic types. You should generally pick one or the other (no using both in the same file unless you REALLY know why you need to), most new work is usually done using std_logic. To fix the problem you need to make everything consistent...either change your inputs to bit types, as you did, or change your internal declared signals to std_logic:
signal Q1, Q2, Q3: std_logic;