From docs:
CREATE DATABASE actually works by copying an existing database. By
default, it copies the standard system database named template1. Thus
that database is the "template" from which new databases are made. If
you add objects to template1, these objects will be copied into
subsequently created user databases. This behavior allows site-local
modifications to the standard set of objects in databases. For
example, if you install the procedural language PL/Perl in template1,
it will automatically be available in user databases without any extra
action being taken when those databases are created.
So you can create "default" objects in template1 db and "clone" it. Or you can create all needed relations (tables, functions, etc) in sample database and then "clone" it with
create database new_db with template sample_db;
Same way you can create several template databases with different "default" pre-created objects and just "clone" them as needed.
Read docs above about limitations etc.
Update
Adding Postgres Objects to Template1 will show you how to do it with pgadmin
create database new_db with template sample_db;