Use multiple columns for location or supertype/subtype?
My approach to design is to think about the what-if's:


How would the design need to change to add a 4th type?
How would it need to change to store a common attribute?
How would it need to change to store an attribute for only one of the types?


I think after going through the process of answering the questions above for the proposed designs, it will be obvious that using a supertype/subtype structure is definitely the way to go (I dare say this is a best-practice for the situation).

There are things to be concerned about, of course -- for example, ensuring that for a given supertype, a matching record must exist in exactly 1 subtype table. With a well-written stored procedure to do "transfers" between types (which is something I assume you'll need), this should be pretty straightforward to implement.