Sum types are definitely a much better example than those I think - prisms are predominantly used for sum types in my world at least! But no, in PS there isn’t really a more succinct way of describing them. The only tweak I’d suggest is using an anonymous case construct so that it’s only one expression:
_Solid = prism' Solid case _ of
Solid x -> Just x
_ -> Nothing
Like the record wildcards case _ of ... essentially means (\x -> case x of ...).
I think there may be a generic lenses library or something that allows you to derive them via generics-rep, but not without a performance penalty, so these kind of definitions are very common.