Where are builds run typically? Devlopers machine, A separate build server or a CI server like Jenkins?
In the case of Jenkins, it depends on how the build is configured. Typically there is a build agent, this can be on the Jenkins master itself or on a distributed node. Once the build has been run the output of the build is archived for retrieval, normally on the master node.
Builds that are run locally on a developers machine typically do not fit the definition of Continuous Integration / Continuous Delivery.
There are also specific build servers that can be implemented, Team City is one example. It really depends on how the environment is setup.
How can we retrieve the archived artifacts in the same Jenkinsfile subsequent stages?
I would investigate the usage of the 'copy artifact' plugin. This can be used to expose the artifact to the subsequent builds.