The goal of DX is to enable Source-Driven Development, and that you should start with setting up a source code repository in DX format if you are going towards DX. There's no direct way to setup up a Scratch Org with metadata from a different Org.
With a source code repository, it means that you will have all the objects/fields stored in the repository somewhere which is in your Production. And then when you create a Scratch Org, you push those components from the repository to your Scratch Org. This way you don't have to create the components individually but rather utilize the source-driven approach.
If you don't have a repository setup yet in DX format, then you will need to utilize Metadata API to be able to retrieve the components from Production, convert it to DX format and deploy it in your Scratch Org. You can find more details on the documentation Migrate or Import Existing Source.