Nested stacks are stacks created as part of other stacks. You create a nested stack within another stack by using the AWS::CloudFormation::Stack
resource.
Stacks can refer to the output of other stacks without having to be a nested stack. For example, you could create a Network stack and then create an Application stack. The Application stack could refer to the Network stack's output, but the second stack doesn't need to be created from the first stack.
If a stack relies on infrastructure build by another stack, then referring to Outputs is definitely the recommended method.
The idea of using Parameter Store to store outputs of one stack and then use it as inputs for another stack seems rather convoluted. It would probably be a good use-case if the original stack is deleted but references should still be persisted (eg for resources that are not deleted with the stack), but not for normal usage.